Virtual desktop manager

ABSTRACT

A method for a user to preview multiple virtual desktops in a graphical user interface is described. The method comprises receiving an indication from a user to preview the multiple virtual desktops and displaying multiple panes on the display. Each pane contains a scaled virtual desktop having dimensions that are proportionally less than the dimensions of a corresponding full-size virtual desktop. Each scaled virtual desktop displays with one or more scaled application windows as shadows if the corresponding full-size virtual desktop has one or more corresponding application windows that are active.

FIELD OF THE INVENTION

[0001] This invention relates generally to the field of graphical userinterfaces, and more particularly, to the desktop area of a graphicaluser interface.

BACKGROUND OF THE INVENTION

[0002] The desktop area of a graphical user interface simulates the topof a physical desk. The intent of the desktop simulation is to make acomputer easier to use by enabling users to move pictures of objects andto start and stop tasks in much the same way they would if they wereworking on a physical desktop. A desktop simulation is characteristic ofa number of operating systems, such as the Microsoft's Windows® andApple Macintosh. For clarity purposes, the following discussion willterm a “desktop simulation” as a desktop.

[0003] An example of a desktop 100 is shown in FIG. 1A, where one ormore application windows 102 are displayed on the desktop 100. Eachapplication window is associated with a software program (application)designed to assist in the performance of a specific task, such as wordprocessing, accounting, or inventory management. The desktop 100includes a button 106 for causing a pop-up menu (not shown) to appear onthe desktop 100 so as to allow one or more application windows 102 to belaunched. This button 106 resides in a panel 104 that lies along thebottom of the desktop 100.

[0004] When a sufficient number of application windows 102 are createdand shown on the desktop 100, the desktop 100 may become confusinglycluttered, thereby making the computer harder to use. As a result,virtual desktops are provided to expand the size of the desktop 100.Each virtual desktop has the same size as the desktop 100. Using virtualdesktops allows the group of application windows 102 to be dispersedthroughout the virtual desktops, thereby reducing the clutteredappearance. Each virtual desktop may be accessed by clicking on anappropriate area in a desk guide 109. The desk guide may be locatedsomewhere on the panel 104.

[0005] One conventional implementation of a desk guide is the desk guide109A shown in FIG. 1B, where a panel 104A includes a button 106A forcausing a pop-up menu (not shown) to appear on the desktop 100 to allowone or more application windows 102 to be launched. The panel 104A alsoincludes a button 120A for minimizing the panel 104A. The desk guide109A includes a number of buttons 110-116. Each button 110-116 may beclicked using a pointing device, such as a mouse, to bring up a virtualdesktop associated with the clicked button. The name of each virtualdesktop is displayed on a button, 110-116. These names may be changed.As more and more application windows 102 are dispersed throughout thesevirtual desktops, it may be difficult for a user to remember whichdesktop contains which application window. The problem with the deskguide 109A is that it does not allow a user to quickly grasp where he orshe has placed various application windows without visiting each of thevirtual desktops by clicking on each of the buttons 110-116.

[0006] Another implementation of a desk guide is the desk guide 109B asshown in FIG. 1B. A panel 104B includes a button 106B for launching oneor more application windows 102 similar to the button 106A discussedabove, and like the button 120A, the panel 104B includes a button 120Bfor minimizing the panel 104B. The desk guide 109B is an improvementover the desk guide 109A in that each virtual desktop is shown as a pane130-136. In each pane, running application windows appear as small,raised squares 138. Notwithstanding the improvement, the desk guide 109Bhas problems similar to the desk guide 109A because it is still notpossible for a user to determine from these small raised squares 138 thedesired application window for which he may be looking. Moreover, manyof the panes look confusingly similar to one another, thereby hinderinga user's ability to recognize the particular virtual desktop on which heor she had opened a desired application. Thus, a user still has toactually visit each virtual desktop to find a desired applicationwindow.

[0007] Therefore, there is a need to enhance the visualization ofvirtual desktops so that a user may locate a desired runningapplication.

SUMMARY OF THE INVENTION

[0008] In accordance with the present invention, a method and computerreadable medium for presenting multiple virtual desktops on a display ofa computer system for previewing by a user are provided. A previewbutton is displayed on a desktop. When the preview button is selected,multiple panes are displayed on the desktop in a tiled manner. Each panecontains a scaled virtual desktop having dimensions that areproportional but less than the dimensions of a corresponding virtualdesktop. Each scaled virtual desktop provides a representation of thecorresponding full-size virtual desktop that would display albeit at asmaller scale. For example, if the corresponding full-size virtualdesktop has one or more application windows that are shown on thefull-size virtual desktop, the scaled virtual desktop would display oneor more scaled application windows that correspond to the one or moreapplication windows shown by the corresponding full-size virtualdesktop. The term “proportional

[0009] In accordance with other aspects of this invention, the displayincludes first and second areas. The multiple panes, when displayed,occupy at least the first area of the display. The dimensions of thefirst area are substantially greater than the dimensions of the secondarea. In accordance with further aspects of this invention, the firstarea forms a work area and the second area includes a task bar.Preferably, the preview button is located in the task bar.

[0010] In accordance with yet other aspects of this invention, thebackground image of each scaled virtual desktop pane corresponds to itsfull-size virtual desktop. The use of corresponding backgrounds allows auser to immediately and visually identify the different full-sizevirtual desktops as well as the application windows that are running onthose virtual desktops. In accordance with other further aspects of thisinvention, the scaled and full-size virtual desktops are animated in thesense that they progressively change in size (zoom), when shifting froma full-size virtual desktop to pane and vice versa.

[0011] In accordance with yet still other aspects of the presentinvention, application windows are shared across multiple virtualdesktops. As the number of virtual desktops proliferates, a user maydesire to access an application window that is opened in a full-sizevirtual desktop other than the current full-size virtual desktop. Themethod includes displaying controls, such as task buttons, representingall open application windows on the task bars of all full-size virtualdesktops. When the user desires to open an application window in acurrent, full-size virtual desktop that is open in another full-sizewindow, the user activates the associated icon. This action results inthe desired application window being shifted to the current full-sizevirtual desktop.

BRIEF DESCRIPTION OF THE DRAWINGS

[0012] The foregoing aspects and many of the attendant advantages ofthis invention will become more readily appreciated as the same becomebetter understood by reference to the following detailed description,when taken in conjunction with the accompanying drawings, wherein:

[0013]FIG. 1A is a pictorial diagram illustrating a desktop of agraphical user interface according to the prior art.

[0014]FIG. 1B is a pictorial diagram illustrating one implementation ofa panel containing a desk guide used to switch among multiple virtualdesktops according to the prior art.

[0015]FIG. 1C is a pictorial diagram illustrating another implementationof a panel containing a desk guide used to switch among multiple virtualdesktops according to the prior art.

[0016]FIG. 2 is a block diagram illustrating a generic computing devicein which the computer readable medium of the invention is usable.

[0017]FIG. 3 is a pictorial diagram illustrating a full-size virtualdesktop, including a virtual desktop manager having a preview button anda number of quick switch buttons according to one embodiment of theinvention.

[0018]FIG. 4 is a pictorial diagram illustrating a full-size virtualdesktop showing only a preview button according to one embodiment of theinvention.

[0019]FIG. 5 is a pictorial diagram illustrating a preview windowshowing the tiled multiple panes, each including a scaled virtualdesktop according to one embodiment of the invention.

[0020]FIG. 6 is a pictorial diagram illustrating a preview windowshowing application buttons that are shared across tiled multiple panes,each including a scaled virtual desktop according to one embodiment ofthe invention.

[0021]FIG. 7 is a pictorial diagram illustrating a preview windowshowing that the sharing of application windows is disabled across tiledmultiple panes, each including a scaled virtual desktop according to oneembodiment of the invention.

[0022]FIG. 8 is a pictorial diagram illustrating a pop-up menu used toconfigure virtual desktops according to one embodiment of the invention.

[0023]FIG. 9 is a pictorial diagram illustrating a dialog window forchanging background images of virtual desktops according to oneembodiment of the invention.

[0024]FIG. 10 is a pictorial diagram illustrating a dialog window forchanging shortcut keys to access virtual desktops according to oneembodiment of the invention.

[0025]FIG. 11 is a pictorial diagram illustrating a virtual desktop witha desktop manager according to another embodiment of the invention.

[0026] FIGS. 12A-12C are process diagrams illustrating the software flowof a virtual desktop manager according to one embodiment of theinvention.

[0027] FIGS. 13A-13B are process diagrams illustrating the software flowof a virtual desktop manager according to another embodiment of theinvention.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT

[0028]FIG. 2 illustrates an exemplary computer device 200 forimplementing the invention. In its most basic configuration, thecomputing device 200 typically includes at least one processing unit 202and memory 204. Depending on the exact configuration and type ofcomputing device, memory 204 may be volatile (such as RAM), non-volatile(such as ROM, flash memory, etc.), or some combination of the two. Thismost basic configuration is illustrated in FIG. 2 by dashed line 206.Additionally, the computing device 200 may also have additionalfeatures/functionality. For example, the computing device 200 may alsoinclude additional storage (removable and/or non-removable) including,but not limited to, magnetic disks, optical disks, or tape. Suchadditional storage is illustrated in FIG. 2 by removable storage 208 andnon-removable storage 210. Computer storage media includes volatile andnon-volatile, removable and non-removable media implemented in anymethod or technology for the storage of information, such ascomputer-readable instructions, data structures, program modules, orother data. Memory 204, removable storage 208, and non-removable storage210 are all examples of computer storage media. Computer storage mediaincludes, but is not limited to, RAM, ROM, EEPROM, flash memory, orother memory technology, CD-ROMs, digital versatile disks (DVDs), orother optical storage, magnetic cassettes, magnetic tape, magnetic diskstorage, or other magnetic storage devices, or any other medium whichcan be used to store the desired information and which can be accessedby the computing device 200. Any such computer storage media may be partof the computing device 200.

[0029] The computing device 200 may also contain communicationsconnection(s) 212 that allow the device to communicate with otherdevices. Communications connection(s) 212 is an example of communicationmedia. Communication media typically embodies computer-readableinstructions, data structures, program modules, or other data in amodulated data signal such as a carrier wave or other transportmechanism and includes any information delivery media. By way ofexample, and not limitation, communication media includes wired mediasuch as a wired network or direct-wired connection, and wireless mediasuch as acoustic, RF, infrared, and other wireless media. The termcomputer-readable media as used herein includes both storage media andcommunication media.

[0030] The computing device 200 may also have input device(s) 214 suchas a keyboard, mouse, pen, voice input device, touch input device, etc.Output device(s) 216 such as a display, speakers, printer, etc. may alsobe included. Because all of these devices are well known in the art,they are not described in detail here.

[0031] The computing device 200 may include a graphical user interface,which is stored in memory 204 and is executed by the processing unit 202to be presented on the display output device 216. A graphical userinterface is a visual computer environment that represents programs,files, and options with graphical images, such as icons, menus, anddialog boxes on the screen. The user can select and activate theseoptions by pointing and clicking with a mouse or, often, with akeyboard. In some computing devices, these options can be voice selectedand activated. A particular item (such as a scrollbar) works the sameway in all applications because the graphical user interface providesstandard software routines to handle these elements and report theuser's actions (such as a mouse click on a particular icon or at aparticular location in text, or a key press).

[0032] One type of graphical user interface creates a full-size virtualdesktop 300 that includes an on-screen work area 303 having a backgroundimage, such as shown in FIG. 3. The virtual desktop 300 also includes ataskbar. The on-screen work area and the taskbar of a correspondingfull-size virtual desktop cover all or substantially all of the viewablearea of the display.

[0033] Located in the taskbar 301, shown in FIG. 3, is a tray 304, avirtual desktop manager 306, and a Start button 302. The virtual desktopmanager 306 includes a number of buttons, namely a preview button 308and a set of quick switch buttons 311-316. The set of quick switchbuttons 311-316 is optional and need not be displayed as shown in FIG.4. Selecting one of the quick switch buttons 311-316 allows a user tocause a corresponding full-size virtual desktop to be displayed.

[0034] When the user clicks on the preview button 308, a preview window310 is displayed as shown in FIG. 5. The preview window 310 includestiled multiple panes 312-318 and covers the area of the display normallycovered by a full-size virtual desktop, i.e., the entire viewable areaof the display. In each pane is a scaled virtual desktop havingdimensions that are proportionately less than the dimensions of acorresponding full-size virtual desktop. In the example shown in FIG. 5,there are four scaled virtual desktops 320-326. Each scaled virtualdesktop 320-326 may have a different background image. In this example,if less than four virtual desktops have been created, the on-screen workarea of one or more of the scaled virtual desktops 320-326 may be blank.Preferably, each scaled virtual desktop is identified by a number336-342. Each scaled virtual desktop 320-326 includes a taskbar 328-334.

[0035] Preferably, the virtual desktop manager 306 has an animationcapability that animates the presentation of the preview window 310 in away that gives a user a spatial sense of the arrangement of the virtualdesktops. For example, suppose a sequence of actions begins with theuser being presented the full-size virtual desktop 300 shown in FIG. 3.This virtual desktop corresponds to the scaled virtual desktop 320,shown in the upper left hand pane 312 of FIG. 5. Suppose next that theuser clicks on the preview button 308 shown in FIG. 3. In response, thevirtual desktop manager 306 progressively shrinks (zooms) the dimensionsof the full-size virtual desktop 300 shown in FIG. 3 into the upper lefthand pane 312 of FIG. 5. As the virtual desktop manager 306 animates(shrinks) the fall-size virtual desktop 300 shown in FIG. 3 in thismanner, it displays the other virtual desktops 322-326 in other panes314-318 of FIG. 5.

[0036] Now, suppose that the user selects the virtual desktop 320located in the upper left hand pane 312 of FIG. 5 by clicking on thatpane 312 while the preview window 310 is displayed. The animationcapability of the virtual desktop manager 306 operates in the oppositemanner and progressively expands (zooms) the dimensions of the scaledvirtual desktop 320 until it has the dimensions of and becomes thefull-size virtual desktop 300, which occupies all or substantially allof the viewable area of the display.

[0037]FIG. 6 illustrates a number of application windows 342B-348B shownrunning on tiled multiple scaled virtual desktops 320-326 in the previewwindow 310. More specifically, one application window 342B is active onthe scaled virtual desktop 320 located in the upper left hand pane ofthe preview window 310, another application window 344B is active on thescaled virtual desktop 322 located in the upper right hand pane of thepreview window 310, a further application window 346B is active on thescaled virtual desktop 324 located in the lower left hand pane of thepreview window 310, and another application window 348B is active on thescaled virtual desktop 326 located in the lower right hand pane of thepreview window 310. These application windows 342B-348B are shown asshadows. As used here, the term “shadow” means an imperfect or faintrepresentation of an actual representation of an application window.Because each of these application windows 342B-348B is active in aparticular virtual desktop, none of them is shown to be active in morethan one virtual desktop, thereby preventing the clutter that mayconfuse users operating a single virtual desktop graphical userinterface. Moreover, the preview window 310 allows a user to apprehendmacroscopically all the virtual desktops at once as well as where he mayhave placed various application windows without visiting each of thevirtual desktops by separately clicking on each of the set of quickswitch buttons 310-316.

[0038] Each of the application windows 342B-348B has a task button342A-348A, located in the window's corresponding taskbar 328-334. Whenthe sharing aspect of the virtual desktop manager is enabled, all ofthese task buttons are made visible in the taskbar of each of thefull-size virtual desktops and correspondingly the scaled virtualdesktops. The first task button 342A corresponds to the applicationwindow 342B located in the upper left hand pane, the second task button344A corresponds to the application window 344B located in the upperright hand pane, the third task button 346A corresponds to theapplication window 346B located in the lower left hand pane, and thefourth task button 348A corresponds to the application window 348Blocated in the lower right hand pane.

[0039] When application sharing is enabled, an application window thatis active in one virtual desktop may be made active in another virtualdesktop. For clarity purposes, the following example uses scaled virtualdesktops as if they were actual virtual desktops, but it should beunderstood that the function of application sharing operates in thecontext of a full-size virtual desktop, i.e., a virtual desktop takingup all or substantially all of the screen display area. Suppose thecurrent full-size virtual desktop is the full-size virtual desktopassociated with the scaled virtual desktop 320 with the activeapplication window 342B located in the upper left hand pane. Suppose theuser wishes to switch to run the application window 348B located in thelower right hand pane. Instead of switching to the full-size virtualdesktop associated with the scaled virtual desktop 326 located in thelower right hand corner by closing the full-size virtual desktop andopening the other full-size virtual desktop, the user can click on therelated task button 348A without changing full-size virtual desktops.When this occurs, the application window 348B (to be switched) movesfrom the full-size virtual window in which it was located to the currentfull-size virtual desktop. Thus, in this example, the application window348B shown in the lower right hand pane shifts to the full-size virtualdesktop associated with the scaled virtual desktop shown in the upperleft hand pane. When the preview window 310 is opened again, theswitched application window 348B is shown in the scaled virtual desktopshown in the upper left hand pane.

[0040] When sharing is not enabled, only the task buttons thatcorrespond to the active application windows are shown in the taskbarsof the full-size virtual desktops. This is illustrated by the scaledvirtual desktops shown in FIG. 7. For example, the taskbar 328 shown inthe upper left hand pane includes only the task button 342A whichcorresponds to the application window 342B open in the associatedfull-size virtual desktop. The task bar shown in the upper left handpane does not include the task buttons 344A-348A associated with theapplication windows that are open in the other full-size virtualdesktops. Similarly, the taskbars 330-334 shown in the other panesdisplay only the task buttons 344A-348A corresponding to theapplications windows 344B-348B that are active in their associatedfull-size virtual desktops. As more and more application windows areopened, disabling the sharing feature has the advantage of improvingtaskbar clutter.

[0041] As shown in FIG. 8, the virtual desktop manager 306 can beactuated (e.g., by clicking on the right button of a mouse while apointer is superjacent to the virtual desktop manager 306) to cause apop-up menu 350 to appear on the on-screen work area 303 of the currentfull-size virtual desktop. Various features associated with managingscaled and full-size virtual desktops formed in accordance with theinvention can be controlled by user interaction with the pop-up menu350. A “Show Quick Switch Buttons” menu item 352, when selected,displays quick switch buttons 310-316, as illustrated by FIG. 3. Thequick switch buttons 310-316 are not displayed if the menu item 352 isunselected, as shown in FIG. 4. A “Shared Desktops” menu item 354, ifselected, allows application windows to be accessed in multiple desktopsas discussed above with respect to FIG. 6. If unselected, applicationsare accessible only from the virtual desktop in which they were invoked,as shown in FIG. 7. A “Use Animations” menu item 356 results in thevirtual desktop manager 306 animating the switching between the scaledvirtual desktops shown in the preview window 310 and full-size virtualdesktops as described above. A “MSVDM Help” menu item 358 allows a userto access a help window containing help information associated withvirtual desktops. A “Configure Shortcut Keys” menu item 360 allows auser to configure a key or a key combination used to invoke a virtualdesktop. A “Configure Desktop Images” menu item 362, when selected,brings up a dialog box 364 shown in FIG. 9 and described next.

[0042] The dialog box 364 automatically opens to a “Desktop” tab 366.The “Desktop” tab 366 reveals and presents a number of thumbnails368-374. Each thumbnail shows the background image of a correspondingvirtual desktop. The background image of a virtual desktop is change bya user selecting the thumbnail associated with the virtual desktop whoseimage is to be changed. Selection can be accomplished by the userclicking on the thumbnail. Then the user selects a desired backgroundimage from a list 376. If the displayed list 376 does not contain thedesired background image, the user can use the browse button 378 tocause undisplayed background images to be displayed. A user can select adesired position for the background image by choosing from among theselections in a pull-down menu 380. In one embodiment of the invention,the selections include tile, center, and stretch.

[0043] The dialog box 364 also includes a “shortcut keys” tab 382. Whenselected, the tab 382 reveals the configuration matrix shown in FIG. 10.The configuration matrix also can be accessed by selecting the“Configure Shortcut Keys” menu item 360 shown in FIG. 8. Theconfiguration matrix includes three columns. The first column 384 titled“Key 1” is the first key that must be pressed by the user to accesseither the preview window 310 or one of the full-size virtual desktops.The first key is configured by a user selecting one of the choices fromthe pull-down menus associated with the “Key 1”column. In one actualembodiment of the invention, the selections include the Windows key, theAlt key, the Control key, or the Shift key. The user may optionallyconfigure a key in the second column 386, which is titled “Key 2”. Thesecond column keys are similar to the first column Keys, i.e., theWindows key, the Alt key, the Control key, or the Shift key. The useralso configures the keys of the third column 388, which is titled “Key3”. Any number or letter may be used as the third key configuration. Thefirst row 390 of the matrix defines a key combination that invokes thepreview window 310, the second row 392 defines a key combination thatinvokes the full-size virtual desktop associated with the number 1, thethird row 394 defines a key combination that invokes the full-sizevirtual desktop associated with the number 2, the fourth row 396 definesa key combination that invokes the full-size virtual desktop associatedwith the number 3, and the row 398 defines a key combination thatinvokes the full-size virtual desktop associated with the number 4.

[0044]FIG. 11 shows a virtual desktop manager 400 according to anotherembodiment of the present invention. Whereas in the previous embodiment,the set of quick switch buttons 310-316 are used to access multiplevirtual desktops as discussed above, in this embodiment, thumbnails402-406 associated with full-size virtual desktops are shown in task bar301 located along one side of the on-screen work area 303 of the currentfull-size virtual desktop. The task bar may be a pop-up menu. A useraccesses a desired virtual desktop by selecting the thumbnail 402-406having the background image of the desired virtual desktop. Ifapplication windows are active in any of the associated full-sizevirtual desktops, the thumbnails 402-406 show the active applicationwindows as shadows similar to those discussed above with reference toFIGS. 6 and 7. A number of applications 399 not yet launched asapplication windows are shown on the taskbar 301. When a full-sizevirtual desktop is shown on the on-screen work area 303, the thumbnailcorresponding to the shown full-size virtual desktop is highlightedalong its periphery in the desktop virtual manager 400.

[0045] Preferably, the desktop virtual manager 400 has an animationcapability that animates the presentation of virtual desktops in a waythat gives a user a spatial sense of the arrangement of the virtualdesktops. If animation is enabled, when the user switches from onevirtual desktop to another, the graphical user interface sets the oldvirtual desktop as a starting point in the animation and progressivelyshrinks the old virtual desktop. Contemporaneously, the graphical userinterface progressively reveals the new virtual desktop, which is theending point of the animation, as the old virtual desktop is shrinking.

[0046] For example, suppose a sequence of actions begins with the userbeing presented a first full-size virtual desktop associated withthumbnail 402. Suppose next that the user clicks on the thumbnail 406.In response, the desktop virtual manager 400 progressively shrinks(zooms) the dimensions of the first virtual desktop. At the same time asthe virtual desktop manager 306 animates (shrinks) the first virtualdesktop in this manner, it gradually displays a second virtual desktopsassociated with the thumbnail 406. One suitable technique, althoughother techniques are also possible, for implementing this animationcapability of the desktop virtual manager 400 is illustrated in FIGS.13A-13B, which will be described later.

[0047] The operation of the virtual desktop manager 306, as describedabove with reference to FIGS. 3-10, is further illustrated in theprocess 1200 shown in FIGS. 12A-12C. The process 1200 begins at a startblock 1202 and proceeds directly to a block 1204, where the virtualdesktop (VDM) manager 306 creates a virtual desktop (VD) toolbar anddocks or attaches the virtual desktop toolbar to the taskbar 301, asshown by at a block 1206.

[0048] Next, the process 1200 proceeds to a decision block 1208 to checkwhether the user has produced an input event using a mouse, a keyboard,or other input device. If the answer to the decision block 1208 is NO,the process 1200 enters a node A that loops back to decision block 1208.The process remains in this way until the user actually produces aninput event.

[0049] If the answer to the decision block 1208 is YES, the processproceeds to another decision block 1210. In this regard, as shown inFIG. 3, the preview button 308 and the quick button 311-316 aredisplayed for the user to activate. Decision block 1210 tests theactivation of these buttons. If any of the buttons 308-316 is activatedby the user, the answer to decision block 1210 is YES, and the process1200 proceeds to a block 1214 (explained later). If the answer todecision block 1210 is NO, the process proceeds to decision block 1212.At decision block 1212, the process 1200 determines the input eventdetected at decision block 1208 is the actuation of a shortcut key. Ifan invalid shortcut key was pressed, the answer to the decision block1212 is NO, and the process 1200 proceeds to the node A and loops backto decision block 1208. If a valid shortcut key was pressed, the processproceeds to at block 1214 where the virtual desktop manager 306 savesthe screenshot of the “switching-from” virtual desktop including anyopen application windows. Afterwards, the process 1200 proceeds to nodeB, which is further described at FIG. 12B.

[0050] From the node B, the process 1200 proceeds to a decision block1216 where a test is made to determine if the input event was generatedby the user clicking the preview button 308 or if the shortcut keyinvoking the preview window 301 was pressed. If the input event was nota preview event, the answer to the decision block 1216 is NO, and theprocess proceeds to a block 1218. At block 1218, the virtual desktopmanager 306 minimizes or hides all top level windows associated with the“switching-from” virtual desktop. Next, at block 1220, the virtualdesktop manager 306 sets the background image of the “switching-to”virtual desktop. Next, at a block 1222, the virtual desktop manager 306restores or shows all top level windows associated with the“switching-to” virtual desktop. Having switched to the desired virtualdesktop, the process 1200 proceeds from the block 1222 to node A andthen loops back to decision block 1208 to await further input events.

[0051] If the input event was a preview event, the answer to decisionblock 1216 is YES, and the process 1200 proceeds to a block 1224. Atblock 1224, the virtual desktop manager 306 sets up the preview mode.Some of the tasks involved in setting up the preview mode includebringing up a preview window 301, providing the borders on the previewwindow 301 to separate each scaled virtual desktop from the others, anddrawing a transparent number at the lower right corner of each scaledvirtual desktop.

[0052] When the setting up of the preview mode is finished, the processproceeds to where a test is made to determine if animation is enabled ata decision block 1226. If animation is enabled, the process proceeds toa block 1228. At block 1228, the virtual desktop manager 306 animatesthe current full-size virtual desktop into the scaled virtual desktop onthe preview window 301 by defining the screenshot of the currentfull-size virtual desktop as the starting point of the animation anddefining the corresponding scaled virtual desktop of the preview window310 as the ending point of the animation. When the animation iscompleted, the process proceeds to a block 1230 where the virtualdesktop manager 306 shows the preview window 310. If animation is notenabled, the answer to the decision block 1226 is NO, and the process1200 proceeds directly to block 1230. Next, the process 1200 proceeds tonode C, which is further described at FIG. 12C.

[0053] From node C the process 1200 continues to a block 1232 where thevirtual desktop manager 306 minimizes and hides all top level windows.This is done to prevent inadvertent flickering between the previewwindow 301 and other windows while the preview window 301 is displayed.

[0054] While the preview window 301 is displayed to the user, theprocess 1200 awaits in a feedback loop at a decision block 1234 for theuser to select one of the scaled virtual desktops 320-326 as shown inFIG. 5. When a valid selection is made, the answer to decision block1234 is YES, and the process proceeds to a block 1236. At block 1236 thevirtual desktop manager 306 restores and shows the application windowsassociated with the “switching-to” full-size virtual desktop. Then, atblock 1238, the virtual desktop manager 306 sets the background image ofthe “switching-to” virtual desktop. If animation is enabled, at adecision block 1240, the process 1200 proceeds to a block 1242 where thevirtual desktop manager 306 animates out of the scaled virtual desktopshown in the preview window to the “switching-to” virtual desktop. Inthis particular animation sequence, the starting point is the scaledvirtual desktop that corresponds to the “switching-to” virtual desktopand the ending point of the animation is the “switching-to” full-sizevirtual desktop. Next, the process 1200 flows to a block 1244 where thevirtual desktop manager 306 hides the preview window 301. If at decisionblock 1240, animation was not enabled, the process proceeds directly toblock 1244. From block 1244 the process proceeds to node A and loopsback to decision block 1304 to wait further input events.

[0055] The operation of the virtual desktop manager 400 as illustratedin FIG. 11 is further explained by the process 1300 shown in FIGS.13A-13B. The process 1300 proceeds from a start block 1302 to a block1304 where the virtual desktop manager 400 initializes a desktopswitcher (DS). The desktop switcher comprises multiple thumbnails402-408. The thumbnails 402-408 create an input event when activated bya user. An alternative way to produce an input event is the activationof a short cut key.

[0056] The process 1300 flows to a decision block 1304 where it checksto see if an input event has occurred. If there no input event hasoccurred, the process 1300 proceeds to a node D and loops back todecision block 1304 to wait for a valid input event. If the answer todecision block 1304 is YES, the process proceeds to another decisionblock 1306 where a test is made to determine if one of the thumbnails402-408 was activated by user. If the answer to decision block 1306 isYES, the process proceeds to a block 1310 is entered. Otherwise, theprocess proceeds to a decision block 1308 where a test is made todetermine if the user has input a key or a combination of keys to invokeone of the virtual desktops, i.e., has actuated a shortcut. If theanswer to decision block 1308 is NO, the process proceeds to node D andawaits a further input event (decision block 1304). If the answer todecision block 1308 is YES, the virtual desktop manager 400 proceeds toblock 1310 where the foreground window of the current full-size virtualdesktop, which is also defined as the “switching-from” virtual desktop,is stored. From block 1310, the process 1300 proceeds to node E and FIG.13B.

[0057] From node E, the process 1300 proceeds to a decision block 1312where a test is made to determine if animation is enabled. If animationis enabled the process proceeds to a block 1314. At block 1314, thevirtual desktop manager 400 constructs screen shots for both the“switching-from” virtual desktop and the “switching-to” virtual desktop.These screen shots will be used in the construction of the animationwindow at a block 1316. When the virtual desktop manager 400 hasdisplayed the animation window, the animation will be performed at ablock 1318 where the starting point of the animation is the constructedscreen shot of the “switching-from” virtual desktop and the ending pointof the animation is the “switching-to” virtual desktop. When theanimation is completed by showing the transition from the“switching-from” virtual desktop to the “switching-to” virtual desktop,the virtual desktop manager 400 hides active application windows of the“switching-from” virtual desktop at a block 1320 and saves thebackground image of the “switching-from” virtual desktop at a block1322.

[0058] The process 1300 then proceeds to a block 1324 from the block1322, where the virtual desktop manager 400 shows the opened applicationwindows of the “switching-to” virtual desktop. Then, the virtual desktopmanager 400 displays the background image of the “switching-to” virtualdesktop at a block 1326. At a block 1328, the foreground applicationwindow of the “switching-to” virtual desktop is restored by the virtualdesktop manager 400. From here, the process 1300 re-enters the node Dwhere it loops to the decision block 1304 to await further input events.

[0059] While the preferred embodiment of the invention has beenillustrated and described, it will be appreciated that various changescan be made therein without departing from the spirit and scope of theinvention.

The embodiments of the invention in which an exclusive property orprivilege is claimed are defined as follows:
 1. Method for presentingmultiple virtual desktops in a single graphical user interface formed ona display of a computer system, the display having a first periphery anda second periphery, the method comprising: receiving an indication froma user to preview the multiple virtual desktops; and displaying multiplepanes occupying at least the first periphery of the display, each panecontaining a scaled virtual desktop having dimensions that areproportionally less than the dimensions of a corresponding full-sizevirtual desktop, each scaled virtual desktop being displayed with one ormore scaled application windows if the corresponding full-size virtualdesktop has one or more corresponding application windows that areactive.
 2. The method of claim 1, wherein the second periphery has anarea less than the first periphery but sufficient for containing ataskbar.
 3. The method of claim 1, further comprising an act ofreceiving an indication from the user to animate the presentation of themultiple panes on the display, the multiple virtual desktops including acurrent full-size virtual desktop in the view of the user, thedimensions of the current full-size virtual desktop being progressivelyshrunken to the dimensions of the corresponding scaled virtual desktopin one of the multiple panes when the method receives the indicationfrom the user to preview the multiple virtual desktops.
 4. The method ofclaim 3, further comprising an act of receiving an indication from theuser to select one scaled virtual desktop from the scaled virtualdesktops in the multiple panes, the dimensions of the one scaled virtualdesktop being progressively grown to the dimensions of the correspondingfull-size virtual desktop, which is defined as the current full-sizevirtual desktop in the view of the user.
 5. The method of claim 1,further comprising an act of displaying a preview button so that theuser may select the preview button to allow the method to receive theindication from the user to preview the multiple virtual desktops. 6.The method of claim 1, further comprising an act of displaying one ormore quick switch buttons so that the user may select a quick switchbutton to switch to a full-size virtual desktop associated with thequick switch button.
 7. Computer-readable medium havingcomputer-executable instructions of performing a method for presentingmultiple virtual desktops in a single graphical user interface formed ona display of a computer system, the display having a first periphery anda second periphery, the method comprising: receiving an indication froma user to preview the multiple virtual desktops; and displaying multiplepanes occupying at least the first periphery of the display, each panecontaining a scaled virtual desktop having dimensions that areproportionally less than the dimensions of a corresponding full-sizevirtual desktop, each scaled virtual desktop being displayed with one ormore scaled application windows if the corresponding full-size virtualdesktop has one or more corresponding application windows that areactive.
 8. Method for sharing applications across multiple virtualdesktops in a graphical user interface being presented on a display of acomputer system, the method comprising: receiving an indication from auser to share an application window; and displaying a buttonrepresenting the application window in a first virtual desktop in whichthe application window is opened, the button being displayed in othervirtual desktops besides the first virtual desktop in which theapplication window is opened and being selectable from any virtualdesktop to switch from another running application window to theapplication window.
 9. The method of claim 8, further comprising:receiving a selection event by the button from a second virtual desktop;displaying the application window in the second virtual desktop; andremoving the presentation of the application window from the firstvirtual desktop while maintaining the presentation of the buttonrepresenting the application window in the first virtual desktop. 10.The method of claim 9, further comprising: receiving an indication froma user to refrain from sharing an application window; and displaying abutton representing the application window in a first virtual desktop inwhich the application window is opened, the button being removed fromother virtual desktops so that the button cannot be selected from othervirtual desktops to switch from another running application window tothe application window.
 11. The method of claim 10, further comprisingan act of displaying a preview button so that the user may select thepreview button to allow the method to receive an indication from theuser to preview the multiple virtual desktops.
 12. The method of claim11, further comprising an act of displaying one or more quick switchbuttons so that the user may select a quick switch button to switch to avirtual desktop associated with the quick switch button. 13.Computer-readable medium having computer-executable instructions ofperforming a method for sharing applications across multiple virtualdesktops in a graphical user interface being presented on a display of acomputer system, the method comprising: receiving an indication from auser to share an application window; and displaying a buttonrepresenting the application window in a first virtual desktop in whichthe application window is opened, the button being displayed in othervirtual desktops besides the first virtual desktop in which theapplication window is opened and being selectable from any virtualdesktop to switch from another running application window to theapplication window.
 14. Method for providing a desktop switcher toswitch among multiple virtual desktops in a graphical user interfacebeing presented on a display of a computer system, each virtual desktophaving a background image that may be different from the backgroundimage of another virtual desktop, the method comprising: displaying aset of thumbnails, each thumbnail representing a full-size virtualdesktop of the multiple virtual desktops, and each thumbnail having abackground image that corresponds to the background image of thefull-size virtual desktop represented by the thumbnail; displaying oneor more shadows in each thumbnail if the full-size virtual desktoprepresented by the thumbnail has one or more application windows thatare opened on the full-size virtual desktop, each shadow being a faintrepresentation of an application window that is opened on the full-sizevirtual desktop; and receiving an indication from a user for switchingfrom one full-size virtual desktop to another full-size virtual desktopwhen the user clicks on a thumbnail from the set of thumbnails.
 15. Themethod of claim 14, further comprising: displaying the act of switchingfrom one full-size virtual desktop to another full-size virtual desktopas an animation by setting the one virtual desktop as a starting pointof the animation and the another virtual desktop as an ending point ofthe animation.
 16. The method of claim 14, further comprising: receivinga dragged event when the user drags a shadow in one thumbnail to anotherthumbnail and receiving a dropped event when the user drops the shadowon the another thumbnail, the shadow that is dropped being defined as adropped shadow; and displaying the dropped shadow on the anotherthumbnail, and displaying the application window that corresponds to thedropped shadow on the virtual desktop that corresponds to the anotherthumbnail when the act of switching switches to the virtual desktop thatcorresponds to the another thumbnail.
 17. The method of claim 14,further comprising: receiving an indication from a user for changing anold background image of the virtual desktop to a new background image;and displaying the new background image of the virtual desktop as wellas the new background image for the thumbnail that corresponds to thevirtual desktop.
 18. The method of claim 14, further comprising:outlining the thumbnail for which the corresponding full-size virtualdesktop is currently presented on the display.
 19. Computer-readablemedium having computer-executable instructions of performing a methodfor providing a desktop switcher to switch among multiple virtualdesktops in a graphical user interface being presented on a display of acomputer system, each virtual desktop having a background image that maybe different from the background image of another virtual desktop, themethod comprising: displaying a set of thumbnails, each thumbnailrepresenting a full-size virtual desktop of the multiple virtualdesktops, and each thumbnail having a background image that correspondsto the background image of the full-size virtual desktop represented bythe thumbnail; displaying one or more shadows in each thumbnail if thefull-size virtual desktop represented by the thumbnail has one or moreapplication windows that are opened on the full-size virtual desktop,each shadow being a faint representation of an application window thatis opened on the full-size virtual desktop; and receiving an indicationfrom a user for switching from one full-size virtual desktop to anotherfull-size virtual desktop when the user clicks on a thumbnail from theset of thumbnails.
 20. Method for providing different background imagesfor multiple virtual desktops in a graphical user interface beingpresented on a display of a computer system, the method comprising:presenting each full-size virtual desktop including the background imageof each full-size virtual desktop as a thumbnail on the display;receiving an indication from a user that an old background image of afirst full-size virtual desktop of the multiple virtual desktops is tobe replaced with a new background image; and displaying on the displaythe new background image of the first full-size virtual desktop of themultiple desktops in accordance with the indication received from theuser if the old background image of the first full-size virtual desktopis in the view of the user, the act of displaying being adapted todisplay the background image of the thumbnail that corresponds to thefirst full-size virtual desktop.
 21. The method of claim 20, furthercomprising an act of showing on the display a first menu having a firstset of menu items, each menu item in the first set of menu itemscorresponding to a selectable background image.
 22. The method of claim21, wherein the act of receiving includes receiving a first selectionevent by a thumbnail representative of a desired full-size virtualdesktop and then receiving a second selection event by a menu item fromthe first set of menu items to indicate a desired background image forthe desired full-size virtual desktop, and wherein the act of displayingchanges the background image of the thumbnail representative of thedesired full-size virtual desktop to the desired background image. 23.The method of claim 20, further comprising an act of configuring a setof shortcut keys, each shortcut key of the set of shortcut keys beingselected from a group consisting of a shortcut key to invoke the displayof a preview window and a shortcut key to invoke the display of afull-size virtual desktop from the multiple virtual desktops.
 24. Themethod of claim 20, further comprising an act of displaying a previewbutton so that the user may select the preview button to allow themethod to receive an indication from the user to preview the multiplevirtual desktops.
 25. Computer-readable medium havingcomputer-executable instructions of performing the method for providingdifferent background images for multiple virtual desktops in a graphicaluser interface being presented on a display of a computer system, themethod comprising: presenting each full-size virtual desktop includingthe background image of each full-size virtual desktop as a thumbnail onthe display; receiving an indication from a user that an old backgroundimage of a first full-size virtual desktop of the multiple virtualdesktops is to be replaced with a new background image; and displayingon the display the new background image of the first full-size virtualdesktop of the multiple desktops in accordance with the indicationreceived from the user if the old background image of the firstfull-size virtual desktop is in the view of the user, the act ofdisplaying being adapted to display the background image of thethumbnail that corresponds to the first full-size virtual desktop.